11. Sa se implementeze un proiect care sa permita unui student sa isi completeze detaliile unei conventii de practica. Se vor analiza fisierele conventie docx in ambele variante romana si engleza. Peste tot unde in fisier exista spatii de completat marcate cu "..." se va modela un camp de tipul valorii care se potriveste acolo. De exemplu: - daca avem de modelat numele unei companii atunci vom folosi o variabila de tip string; - daca modelam numarul de credite pentru disciplina de practica atunci vom folosi o variabila de tip intreg. Pentru a avea un design cat mai apropiat de realitate este recomandat sa modelati clase separate pentru concepte precum: - student - companie - tutore - cadru didactic supervizor - conventie (clasa care va agrega clasele anterioare) - colectia de conventii Se vor modela absolut toate datele/campurile ce trebuie completate de un student in conventia de practica. Aplicatia va permite urmatoarele operatii: - incarcarea unei liste de campuri de conventii in format CSV de pe disc in memorie - crearea unei conventii noi si inserarea ei in colectie - editarea unei conventii pe baza de id-ului (indexului) acesteia - listarea tuturor conventiilor pe ecran prin nume student si companie - salvarea campurilor tuturor conventiilor in format CSV intr-un fisier de tip text - generarea unui fisier docx cu tot continutul conventiei unui student pe baza unui id - generarea conventiilor tuturor studentilor din lista in fisiere cu nume "nume prenume - companie - conventie.docx" Pentru a genera fișiere .docx într-o aplicație de consolă C#, poți folosi librăria DocX, care oferă o metodă simplă de a crea și modifica documente Word. 1. Instalează DocX În Visual Studio, deschide Package Manager Console și rulează comanda: Install-Package DocX Alternativ, poți adăuga pachetul din NuGet Package Manager căutând DocX. 2. Exemple de cod pentru Generarea unui Fisier .docx După ce ai instalat DocX, folosește următorul exemplu de cod pentru a crea un document Word simplu. using System; using Xceed.Words.NET; class Program { static void Main(string[] args) { // Specifică calea unde vrei să salvezi fișierul generat string filePath = @"C:\calea\catre\document_generat.docx"; // Creează un document nou using (var document = DocX.Create(filePath)) { // Adaugă un titlu document.InsertParagraph("Titlul Documentului") .FontSize(18) .Bold() .Alignment = Alignment.center; // Adaugă un paragraf simplu document.InsertParagraph("Acesta este un paragraf de text în documentul generat.") .FontSize(12) .SpacingAfter(20); // Spațiu după paragraful curent // Adaugă un alt paragraf cu formatare diferită document.InsertParagraph("Paragraf cu text italic și subliniat.") .Italic() .UnderlineStyle(UnderlineStyle.singleLine); // Adaugă o listă numerotată var lista = document.AddList("Primul element", 0, ListItemType.Numbered); document.AddListItem(lista, "Al doilea element"); document.AddListItem(lista, "Al treilea element"); document.InsertList(lista); // Salvează documentul document.Save(); } Console.WriteLine("Documentul a fost creat cu succes la " + filePath); } } Crearea Documentului: DocX.Create(filePath) creează un fișier .docx la calea specificată. Adăugarea unui Titlu: InsertParagraph permite adăugarea de text, iar metodele FontSize, Bold, și Alignment adaugă stiluri și alinieri. Adăugarea Paragrafelor: InsertParagraph poate fi folosit pentru a adăuga mai multe paragrafe și pentru a specifica stiluri ca Italic, UnderlineStyle, etc. Adăugarea unei Liste: AddList creează o listă numerotată sau cu puncte. Elementele listei sunt adăugate cu AddListItem, iar lista finală este inserată în document cu InsertList. Salvarea Documentului: document.Save() finalizează și salvează documentul. Observații DocX este foarte flexibil pentru formatare, astfel poți adăuga stiluri de titlu, modificări de font, aliniere, sublinieri și altele. Eliberarea resurselor: Folosind using, fișierul este automat salvat și resursele eliberate. Acest cod generează un fișier .docx care conține un titlu, câteva paragrafe, și o listă numerotată, și afișează un mesaj de confirmare în consolă.